package com.xbongbong.paas.pojo.vo;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.domain.entity.ext.PaasFormDataEntityExt;
import com.xbongbong.paas.domain.entity.ext.PaasFormEntityExt;
import com.xbongbong.paas.enums.clazz.ConditionClass;
import com.xbongbong.paas.pojo.ButtonPojo;
import com.xbongbong.paas.field.FieldAttrEntity;
import com.xbongbong.paas.toolbox.helper.PageHelper;
import com.xbongbong.pro.customerstatement.pojo.StatementTableDataPojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 创建时间： 2018/9/20 14:23
 * 修改时间： 2018/9/20 14:23 梁鲁江
 *
 * @author 梁鲁江
 */
@Getter
@Setter
@ToString
public class PaasFormDataEsListVO implements Serializable{

    private static final long serialVersionUID = -878745471946349154L;

    List<PaasFormDataEntityExt>  paasFormDataESList;

    /**
     * 分页对象
     */
    private PageHelper pageHelper;

    /**
     * 行标题
     */
    private List<FieldAttrEntity> headList;

    /**
     * 表单信息
     */
    private PaasFormEntityExt form;

    /**
     * 汇总信息
     */
    private List<AggSumVO> numCountList;

    /**
     * 审批结束后是否允许编辑，选择允许，提交人可以再次编辑审批后内容；选择不允许，提交人不可以再次编辑审批后内容，数据权限是全公司的人除外 1：允许 0：不允许
     */
    private Integer allowEditAfterFinished;

    /**
     * 表单数据列表上部按钮操作相关权限
     * 如新建(create)、导入(imports)、导出(export)、数据回收站(dataTrash)
     */
    private List<ButtonPojo> topPermissions;

    /**
     * 表单数据列表下部按钮操作相关（批量）权限
     * 如编辑(batchUpdate)、删除(batchDelete)
     */
    private List<ButtonPojo> bottomPermissions;

    /**
     * 表单解释
     */
    private Map<String, FieldAttrEntity> explainMap;

    /**
     * 金额明细的关系
     */
    private JSONObject amountaRelationship;

    /**
     * businessType
     */
    private Integer businessType;

    private Long updateTime;
    /**
     * 分页对象
     */
    private List<StatementTableDataPojo> statementTableDataPojoList;

    /**
     * 筛选项（外链查询列表页和筛选项在同一个接口返回）
     */
    private List<String> screens;
    /**
     * 条件列表
     */
    private Map<String, List<ConditionClass>> conditionList;
    /**
     * 区域视图列表
     */
    private List<DistributorMapVO> distributorMapVOList;
    /**
     * 最底层区域散点需要总数
     */
    private Integer total;
    /**
     * 前端返回的地址筛选需要穿透到散点图
     */
    private List<String> distributorAddress;

    /**
     * 以销定购分页
     */
    private Long firstupdateTime;

    /**
     * 以销定购是否最后一页 1是最后一页 0不是
     */
    private Integer isLast;

    /**
     * 以销定购能否点第一页 1是 0不是
     */
    private Integer isFirst;



    Object[] sortValue;

    public PaasFormDataEsListVO(){
        allowEditAfterFinished = 1;
        paasFormDataESList = new ArrayList<>();
        pageHelper = new PageHelper();
    }
}
